package proxy02;

import proxy01.OneDay;

import java.util.Date;

/*
* 定义一个代理类，相当于老王的教练
* 代理类主要完成需求
* 老王专注于吃饭打游戏睡觉
* 私人教练专门负责统计老王的吃饭打游戏睡觉的时间
*
* 为了让代理类知道要对那些方法做时间统计,我们需要让代理类和被代理类实现相同接口
* 类比:
*   为了让私人教练知道对老王哪些行为做时间统计,我们需要让私人教练和老王实现相同的接口
* */
public class LaoWangProxy implements OneDay {

    private LaoWang lw;
    public LaoWangProxy(LaoWang lw){
        this.lw=lw;
    }

    @Override
    public void eat() {
        long startTime = new Date().getTime();
        lw.eat();
        long endTime = new Date().getTime();
        System.out.println("吃饭需要的时间"+(endTime-startTime));
    }

    @Override
    public void play() {
        long startTime = new Date().getTime();
        lw.play();
        long endTime = new Date().getTime();
        System.out.println("玩游戏需要的时间:"+ (endTime-startTime));
    }

    @Override
    public void sleep() {
        long startTime = new Date().getTime();
        lw.sleep();
        long endTime = new Date().getTime();
        System.out.println("睡觉需要的时间:"+ (endTime-startTime));
    }
}
